Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

each-props

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

each-props

Processes each properties of an object deeply.

  • 1.3.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.2M
decreased by-5.43%
Maintainers
1
Weekly downloads
 
Created
Source

each-props NPM MIT License Build Status Build Status Coverage Status

Processes each properties of an object deeply.

Install

To install from npm:

$ npm i each-props --save

Load this module

For Node.js:

const eachProps = require('each-props');

For Web browser:

<script src="each-props.min.js"></script>

Usage

Apply a function to all (non plain object) properties.

var obj = { a: 1, b: { c: 'CCC', d: { e: 'EEE' } } };

eachProps(obj, function(value, keyChain, nodeInfo) {
  if (keyChain === 'a') {
    nodeInfo.parent['a'] = value * 2;
  } else if (keyChain === 'b.c') {
    nodeInfo.parent['c'] = value.toLowerCase();
  } else if (keyChain === 'b.d') {
    return true; // stop to dig
  } else if (keyChain === 'b.d.e') {
    nodeInfo.parent['e'] = value.toLowerCase();
  }
});

console.log(obj);
// => { a: 2, b: { c: 'ccc', d: { e: 'EEE' } } };

API

eachProps(obj, fn [, opts]) : void

Executes the fn function for all properties.

Parameters:
ParameterTypeDescription
objobjectA plain object to be treated.
fnfunctionA function to operate each properties.
optsobjectAn object to pass any data to each properties.
  • API of fn function

    fn(value, keyChain, nodeInfo) : boolean

    This function is applied to all properties in an object.

    Parameters:
    ParameterTypeDescription
    valueanyA property value.
    keyChainstringA string concatenating the hierarchical keys with dots.
    nodeInfoobjectAn object which contains node informations (See below).
    Returns:

    True, if stops digging child properties.

    Type: boolean

  • Properties of nodeInfo

    PropertiesTypeDescription
    namestringThe property name of this node.
    indexnumberThe index of the property among the sibling properties.
    countnumberThe count of the sibling properties.
    depthnumberThe depth of the property.
    parentobjectThe parent node of the property.
    sortfunctionA sort function which orders the child properties. This function is inherited from opts, if be specified.

    ... and any properties inherited from opts.

  • Properties of opts

    PropertiesTypeDescription
    sortfunctionA sort function which orders the same level properties. (Optional)

    ... and any properties you want to pass to each node.

License

Copyright (C) 2016-2018 Takayuki Sato

This program is free software under MIT License. See the file LICENSE in this distribution for more details.

Keywords

FAQs

Package last updated on 12 May 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc